package com.quwan.manager.service;

import com.quwan.common.result.PageResult;
import com.quwan.entity.TFinanceData;
import com.quwan.entity.TPreserveData;
import com.quwan.entity.TSpreadData;
import com.quwan.manager.controller.dto.BalanceLogDTO;
import com.quwan.manager.controller.dto.DashboardVo;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * @author quan
 * @date 2021-07-26 16:52
 */

public interface DataDashboardService {
    /**
     * 推广数据报表
     * @param page
     * @param size
     * @param beginTime
     * @param endTime
     * @param curWeek
     * @param curMonth
     * @return
     */
    PageResult<TSpreadData> getSpreadDataList(int page, int size, String beginTime, String endTime, String curWeek, String curMonth);

    /**
     * 财务数据报表
     * @param page
     * @param size
     * @param beginTime
     * @param endTime
     * @param curWeek
     * @param curMonth
     * @return
     */
    PageResult<TFinanceData> getFinanceDataList(int page, int size, String beginTime, String endTime, String curWeek, String curMonth);

    /**
     * 后台首页 数据展示
     * @return
     */
    Map<String,String> getIndexDashboardData();

    /**
     * 会员金额日志
     * @param page
     * @param size
     * @param nickName
     * @param id
     * @param mobile
     * @param method
     * @param status
     * @param addBeginTime
     * @param addEndTIme
     * @param name
     * @param tradeType
     * @return
     */

    PageResult<BalanceLogDTO> balanceLog(int page, int size, String nickName, String id, String mobile, String method, String status,
                                                 String addBeginTime, String addEndTIme, String name, String tradeType, String mId);

    /**
     * 后台首页 趋势图
     * @param beginTime
     * @param endTime
     * @return
     */
    DashboardVo getIndexDashboardData(LocalDate beginTime, LocalDate endTime);

    /**
     * 留存报表数据报表
     * @param page
     * @param size
     * @param beginTime
     * @param endTime
     * @param curWeek
     * @param curMonth
     * @return
     */
    PageResult<TPreserveData> getPreserveDataList(int page, int size, String beginTime, String endTime, String curWeek, String curMonth);
}
